package month4.day26;

import java.io.*;
import java.nio.channels.FileChannel;

public class S2 {
    public static void main(String[] args) {
        File f = new File("E:\\Java8\\新建文件夹\\java8.txt");
        try {
            f.createNewFile();
            System.out.println("创建文件成功");
        } catch (IOException e) {
            System.out.println("创建文件失败");
        }
        System.out.println(f.delete() ? "删除成功" : "删除失败");

        File f1 = new File("E:\\Java8\\新建文件夹\\java78.txt");
        File f2 = new File("E:\\Java8\\java78.txt");
        System.out.println(f1.renameTo(f2) ? "移动成功" : "移动失败");
        System.out.println(f2.renameTo(f1) ? "移动成功" : "移动失败");


        //输出内容
        InputStream in = null;
        try {
            in = new FileInputStream("E:\\Java8\\新建文件夹\\java78.txt");
            byte[] b = new byte[in.available()];
            int length = in.read(b);
            String str = new String(b, 0, length);
            System.out.println(str);
            in.close();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

        //输出目录下文件名
        File f3 = new File("E:\\Java8\\新建文件夹");
        if (f3.isDirectory()) {//测试此抽象路径名表示的文件是否是一个目录。
            File[] files = f3.listFiles();//返回一个抽象路径名数组，这些路径名表示此抽象路径名表示的目录中的文件。
            for (File file : files) {
                if (file.isFile())//测试此抽象路径名表示的文件是否是一个标准文件。
                    System.out.println(file.getName());
            }
        }


        //输出盘符
        File[] roots = File.listRoots();//列出可用的文件系统根。
        for (File n : roots)
            System.out.println(n.getAbsolutePath());//返回此抽象路径名的绝对路径名字符串。


        //复制文件
        File f4 = new File("E:\\Java8\\文件夹");
        System.out.println(f1.getName());
        File target = new File(f4, f1.getName());//创建目标文件
        OutputStream output = null;
        InputStream input = null;
        try {
            input = new FileInputStream("E:\\Java8\\新建文件夹\\java78.txt");
            output = new FileOutputStream(target);
            byte[] buf = new byte[input.available()];
            int b;
            while ((b = input.read(buf)) > 0)
                output.write(buf, 0, b);//写入内容
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            try {
                output.close();
                input.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }

    }
}
